package en.edu.zxj.mq.mqserver.core;

import lombok.Data;
import org.springframework.stereotype.Component;

import java.io.Serializable;

/**
 * Created with IntelliJ IDEA.
 * Description：
 *
 * @author: zxj
 * @date: 2024-02-25
 * @time: 21:18:11
 */
@Component
@Data
public class BasicProperties implements Serializable {
    // 消息的唯一身份标识, 此处为了保证 id 的唯一性, 使用 UUID 来作为 messageId
    private String messageId;
    /**
     * 是一个消息上带有的内容, 和 bindingKey 做匹配
     * 如果当前交换机类型是 DIRECT, 此时 routingKey 就表示要转发的队列名
     * 如果当前交换机类型是 FANOUT, 此时 routingKey 没有意义
     * 如果当前交换机类型是 TOPIC, 此时 routingKey 就要和 bindingKey做匹配, 符合要求的才能转发给对应的队列
     **/
    private String routingKey;

    // 这个属性表示消息是否要持久化: 1 表示不持久化, 2 表示持久化. (RabbitMQ 就是这样的)
    private Integer deliverMode = 1;
}
